package com.ruoyi.buss.customer.service;

import java.util.List;
import java.util.Map;

import com.ruoyi.buss.customer.domain.DataCustomerInfo;
import com.ruoyi.buss.customer.domain.ReportywxxLsb;
import com.ruoyi.buss.domain.customer.ResWgInfo;
import com.ruoyi.buss.grid.cj.domain.DataCustomerInfoVO;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.system.api.model.LoginUser;

/**
 * 客户信息Service接口
 *
 * @author ruoyi
 * @date 2021-07-16
 */
public interface IDataCustomerInfoService {
    /**
     * 查询客户信息
     *
     * @param id 客户信息ID
     * @return 客户信息
     */
    public DataCustomerInfo selectDataCustomerInfoById(String id);

    /**
     * 查询客户信息列表
     *
     * @param dataCustomerInfo 客户信息
     * @return 客户信息集合
     */
    public List<DataCustomerInfo> selectDataCustomerInfoList(DataCustomerInfo dataCustomerInfo, LoginUser userInfo);

    public Integer ifStock(DataCustomerInfo dataCustomerInfo);

    /**
     * 新增客户信息
     *
     * @param dataCustomerInfo 客户信息
     * @return 结果
     */
    public int insertDataCustomerInfo(DataCustomerInfo dataCustomerInfo, LoginUser userInfo);

    /**
     * 修改客户信息
     *
     * @param dataCustomerInfo 客户信息
     * @return 结果
     */
    public int updateDataCustomerInfo(DataCustomerInfo dataCustomerInfo, LoginUser userInfo);

    /**
     * 批量删除客户信息
     *
     * @param ids 需要删除的客户信息ID
     * @return 结果
     */
    public int deleteDataCustomerInfoByIds(String[] ids);

    /**
     * 删除客户信息信息
     *
     * @param id 客户信息ID
     * @return 结果
     */
    public int deleteDataCustomerInfoById(String id);

    public String getHeadPic(String idCard, String sex);

    public List<Map<String, Object>> KhLevelChange(DataCustomerInfoVO dataCustomerInfoVO, LoginUser userInfo);

    public List<ReportywxxLsb> ywxxtjt(ReportywxxLsb ReportywxxLsb);

    /**
     * 查询身份证长度18并且联网核查图片为空的客户，取前100
     *
     * @return
     */
    public List<DataCustomerInfo> selectDataCustomerInfoListWithNetCard();

    /**
     * 保存联网核查图片路径及结果
     *
     * @param dataCustomerInfo
     */
    void updateDataCustomerInfoWithNetCard(DataCustomerInfo dataCustomerInfo);

    /**
     * 查找经纬度不为空的客户信息
     *
     * @param userInfo
     * @return
     */
    List<DataCustomerInfo> findCustomerInfoList(LoginUser userInfo);

    /**
     * 更新客户的经纬度
     *
     * @param idCard
     * @param lat
     * @param lng
     */
    void updateCustomerLatLng(String idCard, String lat, String lng);

    /**
     * 查询经纬度为空的客户信息
     *
     * @param userInfo
     * @return
     */
    List<DataCustomerInfo> queryCustomerlatlngEmpty(LoginUser userInfo);
}
